﻿// ---------------------------------------------------------------------
// partial của APIManager  (CARD.cs)
//
// Nội dung:
//    + Các hàm API xử lý lá bài 
//
// Copyright (c) 2009 YugiOH 
//
// Nguyễn Hữu Lê Trọng Tín      YM: ilu2009             ĐT: 0906520611
// Võ Phước Hậu                 YM : phuochauspkt       ĐT: 0979202707
// ---------------------------------------------------------------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Yugi.Client.Card;
using Common;

namespace APIEffect
{
    public partial class APIManager
    {
        /// <summary>
        /// Hủy 1 lá bài Summon
        /// </summary>
        /// <param name="ID">ID lá xóa</param>
        /// 
        public void Card_SendTo_Graveyard(int ID)
        {
            APICard.Card_SendTo_Graveyard(ID);          
        }

        /// <summary>
        /// Gán Điểm Tấn Công Cho Summon
        /// </summary>
        /// <param name="ID">ID lá cần gán điểm</param>
        /// <param name="SoDiem">Điểm Tấn Công</param>
        public void Card_SetDamage(int ID, int SoDiem)
        {
            APICard.Card_SetDamage(ID, SoDiem);
        }

        /// <summary>
        /// Gán Điểm Phòng Thủ cho Summon
        /// </summary>
        /// <param name="ID">ID lá cần gán điểm</param>
        /// <param name="SoDiem">Điểm Phòng Thủ</param>
        public void Card_SetDefense(int ID, int SoDiem)
        {
            APICard.Card_SetDefense(ID, SoDiem);
        }

        /// <summary>
        /// Lấy Điểm Tấn Công của Summon
        /// </summary>
        /// <param name="ID">ID lá cần lấy điểm</param>
        /// <returns>Điểm Tấn Công</returns>
        public int Card_GetDamage(int ID)
        {
            return APICard.Card_GetDamage(ID);
        }

        /// <summary>
        /// Lấy điểm phòng thủ của summon
        /// </summary>
        /// <param name="ID">ID lá cần lấy điểm</param>
        /// <returns>Điểm phòng thủ</returns>
        public int Card_GetDefense(int ID)
        {
            return APICard.Card_GetDefense(ID);
        }

        /// <summary>
        /// Gán trạng thái cho lá summon
        /// </summary>
        /// <param name="ID">ID lá cần gán trạng thái</param>
        /// <param name="TrangThai">Trạng Thái</param>
        public void Summon_SetPosition(int ID, YMSG TrangThai)
        {
            APICard.Summon_SetPosition(ID, TrangThai);
        }

        /// <summary>
        /// Lấy trạng thái hiện tại của summon
        /// </summary>
        /// <param name="ID">ID lá cần lấy trạng thái</param>
        /// <returns>Trạng Thái</returns>
        public YMSG Card_GetPosition(int ID)
        {
            return APICard.Card_GetPosition(ID);
        }

        /// <summary>
        /// SpecialSummon Monster From Deck
        /// </summary>
        /// <param name="Player_Id">Player Id</param>
        /// <param name="ID">Id la bai</param>
        public void Card_SpecialSummon_From_Deck(int Player_Id,int ID)
        {
            APICard.Card_SpecialSummon_From_Deck(Player_Id,ID);
        }

        /// <summary>
        /// SpecialSummon Monster From Hand
        /// </summary>
        /// <param name="Player_Id">Player Id</param>
        /// <param name="ID">Id la bai</param>
        public void Card_SpecialSummon_From_Hand(int Player_Id, int ID)
        {
            APICard.Card_SpecialSummon_From_Hand(Player_Id, ID);
        }

        /// <summary>
        /// SpecialSummon Monster From Graveyard
        /// </summary>
        /// <param name="Player_Id">Player Id</param>
        /// <param name="ID">Id la bai</param>
        /// <param name="player_id_owner">Id Nguoi Choi So Huu la Bai</param>
        public void Card_SpecialSummon_From_Graveyard(int Player_Id, int ID, int player_id_owner)
        {
            APICard.Card_SpecialSummon_From_Graveyard(Player_Id, ID,player_id_owner);
        }

        public YMonsterCard Card_ConvertFromBaseCard(YBaseCard card)
        {
            return APICard.Card_ConvertFromBaseCard(card);
        }

        public YSpellCard Card_ConvertFromBaseCardToSpell(YBaseCard card)
        {
            return APICard.Card_ConvertFromBaseCardToSpell(card);
        }

        public YTrapCard Card_ConvertFromBaseCardToTrap(YBaseCard card)
        {
            return APICard.Card_ConvertFromBaseCardToTrap(card);
        }

        public int Card_Get_ID_Owner(int idcard)
        {
            return APICard.Card_Get_ID_Owner(idcard);
        }

        public void Card_Negate_Card_Before(int idCardActive)
        {
            APICard.Card_Negate_Card_Before(idCardActive);
        }
        public YBaseCard Get_Type_Last_Chain()
        {
            return APICard.Get_Type_Last_Chain();
        }
        public void Card_Remove_All_Script(int idcard)
        {
            APICard.Card_Remove_All_Script(idcard);
        }

        public void Card_Move_From_Deck_To_Hand(int player_id, int card_id)
        {
            APICard.Card_Move_From_Deck_To_Hand(player_id, card_id);
        }

        public void Card_Move_From_Table_To_Hand(int player_id, int card_id)
        {
            APICard.Card_Move_From_Table_To_Hand(player_id, card_id);
        }

        public void Card_Move_From_Table_To_Deck(int player_id, int card_id)
        {
            APICard.Card_Move_From_Table_To_Deck(player_id, card_id);
        }

        public void Card_Set_Damage_Calculation(int ID,int DiemCong)
        {
            APICard.Card_Set_Damage_Calculation(ID,DiemCong);    
        }
    }
}
